perm filename TVSER.SAI[SYS,HE]1 blob sn#004256 filedate 1972-08-01 generic text, type T, neo UTF8
00100	⊃ Needs the following to be declared or defined:
00200	  INTEGER EXFLAG,MINI,MAXI  INTEGER ARRAY HIST[-1:16]  DEFINE WINDOW,CRLF,⊃;
00300	
00400	SIMPLE PROCEDURE INPUT; 
00500	  BEGIN "INPUT"
00600		EXTERNAL PROCEDURE TVIN;
00800		EXTERNAL INTEGER TCLIP,BCLIP,FLINE,LLINE,LSIDE,RSIDE,TVCAM;
00900	
01000	    IF ((TVCAM←LOOK_AT[1])≠1)∧(TVCAM≠2) THEN BEGIN
01100	       OUTSTR("INPUT-FAILED: ILLEGAL CAM NO. (TVCAM="&CVS(TVCAM)&")"CRLF);
01200	       EXFLAG←1; RETURN; 		     END;
01300	
01400	    IF ((LSIDE←LOOK_AT[2]-(LOOK_AT[4] DIV 2))<1)∨
01450	       ((RSIDE←LSIDE+LOOK_AT[4]-1)>330)∨(RSIDE≤LSIDE)∨
01500	       ((FLINE←LOOK_AT[3]-(LOOK_AT[5] DIV 2))<1)∨
01550	       ((LLINE←FLINE+LOOK_AT[5]-1)>250)∨(LLINE≤FLINE)
01600	    THEN BEGIN OUTSTR("INPUT-FAILED: ILLEGAL WINDOW"CRLF);
01700		       EXFLAG←1; RETURN; END;
01800	
01900	    IF ((BCLIP←LOOK_AT[7])<0)∨(BCLIP>7)∨((TCLIP←LOOK_AT[6])<0)∨
02000	       (TCLIP>7)∨(TCLIP>BCLIP) THEN BEGIN
02100	       OUTSTR("INPUT-FAILED: ILLEGAL CLIPS (TCLIP="&CVS(TCLIP)&
02200	              "  BCLIP="&CVS(BCLIP)&")"CRLF);  EXFLAG←1; RETURN; END;
02300	
02400	        TVIN;
02500	  END "INPUT";
02600	
02700	SIMPLE PROCEDURE HISTO;
02800	  BEGIN INTEGER I,X,Y;
02900	    EXTERNAL INTEGER PROCEDURE GETPNT(INTEGER X,Y);
03000	
03100	    ⊃ Compute the histogram;
03200	    FOR I←0 STEP 1 UNTIL 15 DO HIST[I]←0;
03300	    FOR WINDOW DO BEGIN
03400	    I←GETPNT(X,Y); HIST[I]←HIST[I]+1; END;
03500	
03600	    ⊃ Find boundary levels;
03700	    I←0; WHILE (HIST[I]=0)∧(I<15) DO I←I+1; MINI←I;
03800	    I←15; WHILE (HIST[I]=0)∧(I>0)  DO I←I-1; MAXI←I;
03900	    IF DEB_EYE THEN OUTSTR("HISTO: MINI="&CVS(MINI)&"  MAXI="&CVS(MAXI)CRLF);
04000	  END "HISTO";
04100	
04200	SIMPLE PROCEDURE SETCLIP;
04300	  BEGIN INTEGER X,Y;
04400	    LOOK_AT[6]←0; LOOK_AT[7]←7; INPUT; IF EXFLAG≠0 THEN RETURN; HISTO;
04500	    LOOK_AT[6]←(15-MAXI) DIV 2; LOOK_AT[7]←(15-MINI) DIV 2
04600	  END"SETCLIP";
     

00100	SIMPLE PROCEDURE SETWINDOW;
00200	  BEGIN INTEGER XPOT,YPOT,MAN,FLAG;
00300	    LABEL WOD;
00400	    EXTERNAL INTEGER PROCEDURE POTABS(INTEGER CHAN;REFERENCE INTEGER FLAGO);
00500	    LOOK_AT[6]←0; LOOK_AT[7]←7;
00600	  WOD: OUTSTR("...TYPE CAMERA NO.="CRLF); LOOK_AT[1]←CVD(INCHWL);
00700	    OUTSTR("...TYPE WIDTH OF WINDOW="CRLF); LOOK_AT[4]←CVD(INCHWL);
00800	    OUTSTR("...TYPE HIGHT OF WINDOW="CRLF); LOOK_AT[5]←CVD(INCHWL);
00900	    OUTSTR("...TYPE Y TO SET CENTER OF WINDOW FROM POTBOX:"CRLF);
01000	    IF YES THEN BEGIN MAN←1;
01100	    OUTSTR("...CHANGE POTS 12 AND 13 TO MOVE THE WINDOW ..."CRLF); END
01200	         ELSE BEGIN MAN←0;
01300	    OUTSTR("...TYPE X COORDINATE OF WINDOW CENTER="CRLF);
01400	    LOOK_AT[2]←CVD(INCHWL);
01500	    OUTSTR("...TYPE Y COORDINATE OF WINDOW CENTER="CRLF);
01600	    LOOK_AT[3]←CVD(INCHWL); END;
01700	    OUTSTR("...TYPE Y WHEN DONE,OR R TO RESTART:"CRLF);
01800	    FLAG←1;
01900	    WHILE FLAG DO BEGIN IF INCHSL(FLAG)="R" THEN GOTO WOD;
02000	    IF MAN=1 THEN BEGIN
02100	        XPOT←POTABS(1,DUMMY);
02200		YPOT←POTABS(2,DUMMY);
02300		LOOK_AT[2]←167+XPOT/13; LOOK_AT[3]←125+YPOT/17; END;
02400	  	INPUT; IF EXFLAG≠0 THEN BEGIN EXFLAG←0; GOTO WOD; END;
02500	      END; 
02600	    CLRBUF;
02700	END "SETWINDOW";